# $language = "JScript"
# $interface = "1.0"

crt.Screen.Synchronous = true;

/*
* 功能： 多功能自动化脚本
* 用法： 运行脚本，选择对应动作
* 新增： 编写自己的动作，依次添加到fun_list
*   by: KangHua
*/

/*
* 用户函数区
*/

function test_fun(n)
{
    exe_cmd("test_cmd");
    msg_box("test: " + n);
    return 0;
}

function test_fun_null()
{
    exe_cmd("test_cmd");
    msg_box("test: " + "null");
    return 0;
}

/* 动作列表 */
var fun_list = [[],/* id0空置 */
    /* id    name    fun       para*/
    /* 1 */["test",  test_fun_null],
    /* 1 */["test",  test_fun, 2],
    /* 1 */["test",  test_fun, 3],
    /* 1 */["test",  test_fun, 4],
    /* 1 */["test",  test_fun, 5],
    /* 1 */["test",  test_fun, 6],
    /* 1 */["test",  test_fun, 7],
    /* 1 */["test",  test_fun, 8],
    /* 1 */["test",  test_fun, 9],
    /* 1 */["test",  test_fun, 10],
[]];

/* 
* 基础函数区
*/

/* 执行命令 */
function exe_cmd(str)
{
    var str_cmd = str + "\r";

    crt.Screen.send(str_cmd);
    crt.Screen.WaitForStrings(">", "#", "$", "(y/n)", 1);
}

/* 执行命令多次 */
function exe_cmds(str, n)
{
    var i;

    for(i = 0; i < n; i++)
    {
        exe_cmd(str);
    }
}

/* 执行命令检查字符串 */
function exe_chk(str, chk, s)
{
    var str_cmd = str + "\r";

    crt.Screen.send(str_cmd);

    return crt.Screen.WaitForStrings(chk, s);
}

function exe_chkn(str, chk, n, s)
{
    var i, ret = 0;
    var str_cmd = str + "\r";

    crt.Screen.send(str_cmd);

    for(i = 0; i < n; i++)
    {
        ret = crt.Screen.WaitForStrings(chk, s);
        if(0 == ret)
            return 0;
    }

    return ret;
}

/* 等待字符串 */
function wait_str(str, time)
{
    return crt.Screen.WaitForStrings(str, time);
}

/* 睡眠 */
function sleep(s)
{
    crt.Sleep(s * 1000);
}

/* 补齐 */
function pad(num, len)
{
    var i, str = num.toString();

    for(i = str.length; i <= len; i++)
        str = ' ' + str;

    return str;
}

/* 提示 */
function prompt(menu, title, def_ret, is_pswd)
{
    return crt.Dialog.Prompt(menu, title, def_ret, is_pswd);
}

/* 弹窗 */
function msg_box(msg)
{
    return crt.Dialog.MessageBox(msg);
}

/* 主流程函数 */
function main()
{
    var choose;
    var menu = "";
    var id, total;

    total = fun_list.length - 1;
    
    /* 构建菜单 */
    for(id = 1; id < total; id++)
        menu += pad(id, 4) + "  ->  " + fun_list[id][0] + "\r\n";

    /* 选择动作 */
    choose = prompt(menu, "请选择动作", 0, false);
    if(0 == choose)
        return;

    /* 执行动作 */
    choose = Number(choose);
    if(choose < total)
        fun_list[choose][1](fun_list[choose][2]);
    else
        msg_box("不支持动作！");
}